Una forma di multitasking impiegata da Apple nel suo sistema operativo Mac
OS. Diverse applicazioni possono essere caricate contemporaneamente, ma
quelle in background possono attivarsi e continuare nella loro
elaborazione solo quando lÆapplicazione in primo piano (foreground) è
temporaneamente inattiva. Questo sistema di multitasking prevede che
lÆapplicazione ceda il controllo della CPU a unÆaltra applicazione solo in
momenti prefissati, come ad esempio quando è pronta ad accettare input
dalla tastiera e non ha altre elaborazioni da svolgere. Si chiama
cooperativo perché le applicazioni devono essere progettate in modo da
cooperare tra loro, cedendosi reciprocamente il controllo della CPU senza
lÆintervento di un arbitro esterno. La macchina può facilmente essere
monopolizzata da unÆapplicazione che esegue una continua attività di
elaborazione oppure che semplicemente non cede il controllo della CPU
anche quando è inattiva (attende input dalla tastiera). In questo ambiente
non può essere garantita la funzionalità di un programma di comunicazione
che lavori in background. Infatti per loro natura i programmi di
comunicazione devono essere in grado di ricevere i dati in arrivo entro un
certo ritardo massimo e quindi deve essere garantita loro la possibilità
di acquisire anche temporaneamente il controllo della CPU a intervalli di
tempo massimi definiti. Il multitasking cooperativo viene anche chiamato
non-preemptive multitasking.
|